From 0e68b181a9975c9fa31426eb070bed104ee565e8 Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Tue, 8 Feb 2005 18:03:51 +0000 Subject: [PATCH] bitkeeper revision 1.1159.1.550 (4208ff07n_vZmQRm3MGLW7fSFD_y4g) Small naming cleanup. p.t. 'entries' and 'shift' macros now have same naming style. Signed-off-by: keir.fraser@cl.cam.ac.uk --- xen/arch/x86/domain.c | 2 +- xen/arch/x86/mm.c | 16 ++++++------- xen/arch/x86/shadow.c | 10 ++++----- xen/arch/x86/x86_32/mm.c | 4 ++-- xen/arch/x86/x86_64/mm.c | 10 ++++----- xen/include/asm-x86/page.h | 13 ++++++++--- xen/include/asm-x86/shadow.h | 2 +- xen/include/asm-x86/x86_32/page.h | 28 ++++++++++++----------- xen/include/asm-x86/x86_64/page.h | 37 ++++++++++++++----------------- 9 files changed, 64 insertions(+), 58 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index a9c90476ab..b2c176f8cd 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -329,7 +329,7 @@ static void monitor_mk_pagetable(struct exec_domain *ed) phys_table = (l2_pgentry_t *) map_domain_mem(pagetable_val( ed->arch.phys_table)); memcpy(d->arch.mm_perdomain_pt, phys_table, - ENTRIES_PER_L1_PAGETABLE * sizeof(l1_pgentry_t)); + L1_PAGETABLE_ENTRIES * sizeof(l1_pgentry_t)); unmap_domain_mem(phys_table); unmap_domain_mem(mpl2e); diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index bbeab6dd63..1c030ffd1a 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -560,7 +560,7 @@ static int alloc_l1_table(struct pfn_info *page) pl1e = map_domain_mem(page_nr << PAGE_SHIFT); - for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ ) + for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ ) if ( unlikely(!get_page_from_l1e(pl1e[i], d)) ) goto fail; @@ -600,7 +600,7 @@ static void free_l1_table(struct pfn_info *page) pl1e = map_domain_mem(page_nr << PAGE_SHIFT); - for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ ) + for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ ) put_page_from_l1e(pl1e[i], d); unmap_domain_mem(pl1e); @@ -1917,7 +1917,7 @@ void ptwr_flush(const int which) */ pl1e = ptwr_info[cpu].ptinfo[which].pl1e; - for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ ) + for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ ) { ol1e = ptwr_info[cpu].ptinfo[which].page[i]; nl1e = pl1e[i]; @@ -1950,7 +1950,7 @@ void ptwr_flush(const int which) * reference counts are correct. */ memcpy(&pl1e[i], &ptwr_info[cpu].ptinfo[which].page[i], - (ENTRIES_PER_L1_PAGETABLE - i) * sizeof(l1_pgentry_t)); + (L1_PAGETABLE_ENTRIES - i) * sizeof(l1_pgentry_t)); unmap_domain_mem(pl1e); ptwr_info[cpu].ptinfo[which].l1va = 0; UNLOCK_BIGLOCK(d); @@ -2092,7 +2092,7 @@ int ptwr_do_page_fault(unsigned long addr) ptwr_info[cpu].ptinfo[which].pl1e = map_domain_mem(pfn << PAGE_SHIFT); memcpy(ptwr_info[cpu].ptinfo[which].page, ptwr_info[cpu].ptinfo[which].pl1e, - ENTRIES_PER_L1_PAGETABLE * sizeof(l1_pgentry_t)); + L1_PAGETABLE_ENTRIES * sizeof(l1_pgentry_t)); /* Finally, make the p.t. page writable by the guest OS. */ pte |= _PAGE_RW; @@ -2238,7 +2238,7 @@ void audit_domain(struct domain *d) case PGT_l1_page_table: case PGT_l2_page_table: pt = map_domain_mem(pfn<> PAGE_SHIFT) == xpfn) ) printk(" found dom=%d i=%x pfn=%lx t=%x c=%x\n", @@ -2399,7 +2399,7 @@ void audit_domain(struct domain *d) #endif pt = map_domain_mem( pfn<>L1_PAGETABLE_SHIFT) & ~(ENTRIES_PER_L1_PAGETABLE-1)]); + (va>>L1_PAGETABLE_SHIFT) & ~(L1_PAGETABLE_ENTRIES-1)]); spl1e = (unsigned long *) &(shadow_linear_pg_table[ - (va>>L1_PAGETABLE_SHIFT) & ~(ENTRIES_PER_L1_PAGETABLE-1)]); + (va>>L1_PAGETABLE_SHIFT) & ~(L1_PAGETABLE_ENTRIES-1)]); - for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ ) + for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ ) l1pte_propagate_from_guest(d, &gpl1e[i], &spl1e[i]); } else @@ -847,7 +847,7 @@ static int check_l1_table( gpl1e = map_domain_mem(g2mfn << PAGE_SHIFT); spl1e = map_domain_mem(s2mfn << PAGE_SHIFT); - for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ ) + for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ ) check_pte(d, &gpl1e[i], &spl1e[i], 1, i); unmap_domain_mem(spl1e); diff --git a/xen/arch/x86/x86_32/mm.c b/xen/arch/x86/x86_32/mm.c index ba5ce4ff0d..f3545ffdb9 100644 --- a/xen/arch/x86/x86_32/mm.c +++ b/xen/arch/x86/x86_32/mm.c @@ -30,7 +30,7 @@ /* Map physical byte range (@p, @p+@s) at virt address @v in pagetable @pt. */ int map_pages( - pagetable_t *pt, + root_pgentry_t *pt, unsigned long v, unsigned long p, unsigned long s, @@ -327,7 +327,7 @@ void *memguard_init(void *heap_start) { l1 = (l1_pgentry_t *)heap_start; heap_start = (void *)((unsigned long)heap_start + PAGE_SIZE); - for ( j = 0; j < ENTRIES_PER_L1_PAGETABLE; j++ ) + for ( j = 0; j < L1_PAGETABLE_ENTRIES; j++ ) l1[j] = mk_l1_pgentry((i << L2_PAGETABLE_SHIFT) | (j << L1_PAGETABLE_SHIFT) | __PAGE_HYPERVISOR); diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index f8c48f7981..4183442635 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -38,7 +38,7 @@ void *safe_page_alloc(void) /* Map physical byte range (@p, @p+@s) at virt address @v in pagetable @pt. */ int map_pages( - pagetable_t *pt, + root_pgentry_t *pt, unsigned long v, unsigned long p, unsigned long s, @@ -119,8 +119,8 @@ void __init paging_init(void) unsigned long i, p, max; /* Map all of physical memory. */ - max = ((max_page + ENTRIES_PER_L1_PAGETABLE - 1) & - ~(ENTRIES_PER_L1_PAGETABLE - 1)) << PAGE_SHIFT; + max = ((max_page + L1_PAGETABLE_ENTRIES - 1) & + ~(L1_PAGETABLE_ENTRIES - 1)) << PAGE_SHIFT; map_pages(idle_pg_table, PAGE_OFFSET, 0, max, PAGE_HYPERVISOR); /* @@ -201,7 +201,7 @@ void subarch_init_memory(struct domain *dom_xen) continue; m2p_start_mfn = l2_pgentry_to_pfn(l2e); - for ( i = 0; i < ENTRIES_PER_L1_PAGETABLE; i++ ) + for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ ) { frame_table[m2p_start_mfn+i].count_info = PGC_allocated | 1; /* gdt to make sure it's only mapped read-only by non-privileged @@ -303,7 +303,7 @@ void *memguard_init(void *heap_start) for ( i = 0; i < (xenheap_phys_end >> L2_PAGETABLE_SHIFT); i++ ) { ALLOC_PT(l1); - for ( j = 0; j < ENTRIES_PER_L1_PAGETABLE; j++ ) + for ( j = 0; j < L1_PAGETABLE_ENTRIES; j++ ) l1[j] = mk_l1_pgentry((i << L2_PAGETABLE_SHIFT) | (j << L1_PAGETABLE_SHIFT) | __PAGE_HYPERVISOR); diff --git a/xen/include/asm-x86/page.h b/xen/include/asm-x86/page.h index 51aa0db52a..93801084f6 100644 --- a/xen/include/asm-x86/page.h +++ b/xen/include/asm-x86/page.h @@ -9,6 +9,13 @@ #include #endif +/* Page-table type. */ +#ifndef __ASSEMBLY__ +typedef struct { unsigned long pt_lo; } pagetable_t; +#define pagetable_val(_x) ((_x).pt_lo) +#define mk_pagetable(_x) ( (pagetable_t) { (_x) } ) +#endif + #ifndef __ASSEMBLY__ #define PAGE_SIZE (1UL << PAGE_SHIFT) #else @@ -38,7 +45,7 @@ #define DOMAIN_ENTRIES_PER_L2_PAGETABLE \ (HYPERVISOR_VIRT_START >> L2_PAGETABLE_SHIFT) #define HYPERVISOR_ENTRIES_PER_L2_PAGETABLE \ - (ENTRIES_PER_L2_PAGETABLE - DOMAIN_ENTRIES_PER_L2_PAGETABLE) + (L2_PAGETABLE_ENTRIES - DOMAIN_ENTRIES_PER_L2_PAGETABLE) #ifndef __ASSEMBLY__ #include @@ -51,7 +58,7 @@ #define va_to_l1mfn(_va) (l2_pgentry_val(linear_l2_table[_va>>L2_PAGETABLE_SHIFT]) >> PAGE_SHIFT) -extern pagetable_t idle_pg_table[ENTRIES_PER_PAGETABLE]; +extern root_pgentry_t idle_pg_table[ROOT_PAGETABLE_ENTRIES]; extern void paging_init(void); @@ -126,7 +133,7 @@ extern void zap_low_mappings(void); /* Map physical byte range (@p, @p+@s) at virt address @v in pagetable @pt. */ extern int map_pages( - pagetable_t *pt, + root_pgentry_t *pt, unsigned long v, unsigned long p, unsigned long s, diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h index 7618c610f2..926526173c 100644 --- a/xen/include/asm-x86/shadow.h +++ b/xen/include/asm-x86/shadow.h @@ -677,7 +677,7 @@ static inline void vmx_update_shadow_state( spl2e = (l2_pgentry_t *)map_domain_mem(smfn << PAGE_SHIFT); gpl2e = (l2_pgentry_t *)map_domain_mem(gpfn << PAGE_SHIFT); - memset(spl2e, 0, ENTRIES_PER_L2_PAGETABLE * sizeof(l2_pgentry_t)); + memset(spl2e, 0, L2_PAGETABLE_ENTRIES * sizeof(l2_pgentry_t)); ed->arch.shadow_vtable = spl2e; ed->arch.vpagetable = gpl2e; /* expect the guest did clean this up */ diff --git a/xen/include/asm-x86/x86_32/page.h b/xen/include/asm-x86/x86_32/page.h index 1c46ef1817..9b5efe82b8 100644 --- a/xen/include/asm-x86/x86_32/page.h +++ b/xen/include/asm-x86/x86_32/page.h @@ -3,19 +3,27 @@ #ifndef __X86_32_PAGE_H__ #define __X86_32_PAGE_H__ -#define L1_PAGETABLE_SHIFT 12 -#define L2_PAGETABLE_SHIFT 22 -#define PAGE_SHIFT L1_PAGETABLE_SHIFT +#define L1_PAGETABLE_SHIFT 12 +#define L2_PAGETABLE_SHIFT 22 +#define PAGE_SHIFT L1_PAGETABLE_SHIFT +#define ROOT_PAGETABLE_SHIFT L2_PAGETABLE_SHIFT -#define ENTRIES_PER_L1_PAGETABLE 1024 -#define ENTRIES_PER_L2_PAGETABLE 1024 +#define L1_PAGETABLE_ENTRIES 1024 +#define L2_PAGETABLE_ENTRIES 1024 +#define ROOT_PAGETABLE_ENTRIES L2_PAGETABLE_ENTRIES -#define __PAGE_OFFSET (0xFC400000) +#define __PAGE_OFFSET (0xFC400000) + +#define PADDR_BITS 32 +#define VADDR_BITS 32 +#define PADDR_MASK (~0UL) +#define VADDR_MASK (~0UL) #ifndef __ASSEMBLY__ #include typedef struct { unsigned long l1_lo; } l1_pgentry_t; typedef struct { unsigned long l2_lo; } l2_pgentry_t; +typedef l2_pgentry_t root_pgentry_t; #endif /* !__ASSEMBLY__ */ /* Strip type from a table entry. */ @@ -40,17 +48,11 @@ typedef struct { unsigned long l2_lo; } l2_pgentry_t; /* Given a virtual address, get an entry offset into a page table. */ #define l1_table_offset(_a) \ - (((_a) >> L1_PAGETABLE_SHIFT) & (ENTRIES_PER_L1_PAGETABLE - 1)) + (((_a) >> L1_PAGETABLE_SHIFT) & (L1_PAGETABLE_ENTRIES - 1)) #define l2_table_offset(_a) \ ((_a) >> L2_PAGETABLE_SHIFT) /* Given a virtual address, get an entry offset into a linear page table. */ #define l1_linear_offset(_a) ((_a) >> PAGE_SHIFT) -/* Root page-table definitions. */ -#define pagetable_t l2_pgentry_t -#define pagetable_val(_x) ((_x).l2_lo) -#define mk_pagetable(_x) ( (l2_pgentry_t) { (_x) } ) -#define ENTRIES_PER_PAGETABLE ENTRIES_PER_L2_PAGETABLE - #endif /* __X86_32_PAGE_H__ */ diff --git a/xen/include/asm-x86/x86_64/page.h b/xen/include/asm-x86/x86_64/page.h index 7d0cc84e32..318df434fc 100644 --- a/xen/include/asm-x86/x86_64/page.h +++ b/xen/include/asm-x86/x86_64/page.h @@ -3,18 +3,20 @@ #ifndef __X86_64_PAGE_H__ #define __X86_64_PAGE_H__ -#define L1_PAGETABLE_SHIFT 12 -#define L2_PAGETABLE_SHIFT 21 -#define L3_PAGETABLE_SHIFT 30 -#define L4_PAGETABLE_SHIFT 39 -#define PAGE_SHIFT L1_PAGETABLE_SHIFT +#define L1_PAGETABLE_SHIFT 12 +#define L2_PAGETABLE_SHIFT 21 +#define L3_PAGETABLE_SHIFT 30 +#define L4_PAGETABLE_SHIFT 39 +#define PAGE_SHIFT L1_PAGETABLE_SHIFT +#define ROOT_PAGETABLE_SHIFT L4_PAGETABLE_SHIFT -#define ENTRIES_PER_L1_PAGETABLE 512 -#define ENTRIES_PER_L2_PAGETABLE 512 -#define ENTRIES_PER_L3_PAGETABLE 512 -#define ENTRIES_PER_L4_PAGETABLE 512 +#define L1_PAGETABLE_ENTRIES 512 +#define L2_PAGETABLE_ENTRIES 512 +#define L3_PAGETABLE_ENTRIES 512 +#define L4_PAGETABLE_ENTRIES 512 +#define ROOT_PAGETABLE_ENTRIES L4_PAGETABLE_ENTRIES -#define __PAGE_OFFSET (0xFFFF830000000000) +#define __PAGE_OFFSET (0xFFFF830000000000) /* These may increase in future (phys. bits in particular). */ #define PADDR_BITS 40 @@ -28,6 +30,7 @@ typedef struct { unsigned long l1_lo; } l1_pgentry_t; typedef struct { unsigned long l2_lo; } l2_pgentry_t; typedef struct { unsigned long l3_lo; } l3_pgentry_t; typedef struct { unsigned long l4_lo; } l4_pgentry_t; +typedef l4_pgentry_t root_pgentry_t; #endif /* !__ASSEMBLY__ */ /* Strip type from a table entry. */ @@ -64,21 +67,15 @@ typedef struct { unsigned long l4_lo; } l4_pgentry_t; /* Given a virtual address, get an entry offset into a page table. */ #define l1_table_offset(_a) \ - (((_a) >> L1_PAGETABLE_SHIFT) & (ENTRIES_PER_L1_PAGETABLE - 1)) + (((_a) >> L1_PAGETABLE_SHIFT) & (L1_PAGETABLE_ENTRIES - 1)) #define l2_table_offset(_a) \ - (((_a) >> L2_PAGETABLE_SHIFT) & (ENTRIES_PER_L2_PAGETABLE - 1)) + (((_a) >> L2_PAGETABLE_SHIFT) & (L2_PAGETABLE_ENTRIES - 1)) #define l3_table_offset(_a) \ - (((_a) >> L3_PAGETABLE_SHIFT) & (ENTRIES_PER_L3_PAGETABLE - 1)) + (((_a) >> L3_PAGETABLE_SHIFT) & (L3_PAGETABLE_ENTRIES - 1)) #define l4_table_offset(_a) \ - (((_a) >> L4_PAGETABLE_SHIFT) & (ENTRIES_PER_L4_PAGETABLE - 1)) + (((_a) >> L4_PAGETABLE_SHIFT) & (L4_PAGETABLE_ENTRIES - 1)) /* Given a virtual address, get an entry offset into a linear page table. */ #define l1_linear_offset(_a) (((_a) & VADDR_MASK) >> PAGE_SHIFT) -/* Root page-table definitions. */ -#define pagetable_t l4_pgentry_t -#define pagetable_val(_x) ((_x).l4_lo) -#define mk_pagetable(_x) ( (l4_pgentry_t) { (_x) } ) -#define ENTRIES_PER_PAGETABLE ENTRIES_PER_L4_PAGETABLE - #endif /* __X86_64_PAGE_H__ */ -- 2.30.2